聊聊云计算:为什么构建网站时常会用到负载均衡
戳蓝字“CSDN云计算”关注我们哦!
作者:疯子程序员
来源:
https://blog.csdn.net/qq_40196321/article/details/85075746
负载均衡可以将客户端请求分摊到多个操作单元上进行处理
硬件负载均衡
负载均衡有很多种不同的实现方式,总的来说,可以分为硬件负载均衡与软件负载均衡两大类。
硬件负载均衡有很多设备商可以提供解决方案,比如NetScaler、F5、Array Networks等。硬件负载均衡的优势比较明显:有专业团队进行维护、性能好、且稳定可靠。
F5负载均衡器
但硬件负载均衡解决方案也有缺点,比如设备和服务费用昂贵,灵活性差,功能和容量都难以扩展。软件负载均衡相对来说,灵活性强,扩展起来更容易,所以软件负载均衡解决方案越来越受到青睐。
DNS负载均衡
软件负载均衡最早通过DNS来实现,即一个域名对应多个IP地址。在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
DNS负载均衡的解决方案原理比较简单,不过缺点也比较明显:
第一,不能够按照Web服务器的处理能力分配负载;
第二,DNS负载均衡技术没有考虑容错,即使某个服务器不可用,DNS仍然会把请求转发过去;
第三,一旦发现某个服务器出现故障,即使及时修改了DNS设置,但还是要等DNS刷新时间到了才能生效。
开源软件解决方案
后来出现了开源软件负载均衡的解决方案,最主流的就是LVS和Nginx。基于开源软件的负载均衡打破了硬件LB的垄断,降低了负载均衡的实施成本。
(1)LVS = Linux Virtual Server
LVS虚拟服务器,在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
LVS是把负载均衡的功能做到了Linux内核里面。LVS集群采用IP负载均衡技术和基于内容请求分发技术,将一组服务器构成一个高性能的、高可用的虚拟服务器。
整个服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样,而且无需修改客户端和服务器端的程序。
(2)Nginx
Nginx是一个轻量级的Web服务器,同时也是一个反向代理服务器,可以利用其反向代理的功能做负载均衡。Nginx与LVS相比主要有以下几点不同:
与LVS在层四进行负载均衡不同,Nginx是在层7进行,可以针对Http应用进行分流;
转发策略也更灵活,比如可以针对域名或目录结构进行转发;
Nginx对网络的依赖比较小,理论上只要Ping得通,网页访问正常就能连通,而LVS比较依赖网络环境。
总的来说,Nginx的应用场合要更多一些,LVS则更适合节点比较多的大型系统。
基于云的负载均衡(Cloud Load Balance)
除了在云主机上自己利用LVS或Nginx搭建负载均衡服务器,阿里云、腾讯云等云计算服务商,均提供了专门的负载均衡服务,配置容易。这些服务商的负载均衡解决方案,往往是结合了层7与层4的综合负载均衡方案,而且还需要考虑VPC网络与物理网络的不同情况(关于VPC的概念,可以参考之前的文章,《聊聊云计算:VPC与VPN有什么关系》)。具体实现方案比较复杂,这里就不过多介绍了,反正会用就行。
基于负载均衡实现的典型的云服务架构
上图就是一个基于负载均衡的典型的云服务架构。在我们搭建互联网应用时,可能需要考虑服务器的承载能力,或者需要保障服务器可用性,避免出现单点故障,使用负载均衡就是一个基本操作,掌握了LB,我们的服务就更加稳定了。
推荐阅读
1.微信群:
添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
2.征稿:
投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。